//#define  _CRT_SECURE_NO_WARNINGS
//#include <queue>
//#include <vector>
//#include <iostream>
//using namespace std;
//
//int main()
//{
//	int m, n;
//	cin >> m >> n;
//	int sx, sy, ex, ey;
//	cin >> sx >> sy >> ex >> ey;
//
//	vector<vector<char>> arr(m, vector<char>(n));
//	for (int i = 0; i < m; i++)
//		for (int j = 0; j < n; j++)
//			cin >> arr[i][j];
//
//	queue<pair<int, int>> q;
//	q.push({ sx - 1, sy - 1 });
//	int ret = 0;
//
//	int dx[4] = { 0, 0 ,1, -1 };
//	int dy[4] = { 1, -1, 0, 0 };
//	while (q.size())
//	{
//		int sz = q.size();
//		ret++;
//		while (sz--)
//		{
//			auto point = q.front(); q.pop();
//			for (int i = 0; i < 4; i++)
//			{
//				int x = point.first + dx[i], y = point.second + dy[i];
//				if (x >= 0 && x < m && y >= 0 && y < n && arr[x][y] == '.')
//				{
//					q.push({ x, y });
//					arr[x][y] = '*';
//					if (x == ex - 1 && y == ey - 1)
//					{
//						cout << ret << endl;
//						return 0;
//					}
//				}
//			}
//		}
//	}
//	cout << -1 << endl;
//}